A storage system typically comprises one or more storage devices where information may be entered, and from which information may be obtained, as desired. The storage system typically includes a storage operating system that functionally organizes the system by, inter alia, invoking storage operations in support of a storage service implemented by the system. The storage system may be implemented in accordance with a variety of storage architectures including, but not limited to, a network-attached storage environment, a storage area network and a disk assembly directly attached to a user or host computer.
A storage system typically stores information at a primary storage array, which may then be replicated and archived at a secondary storage array for disaster recovery or any other reason. The replication process is commonly referred to as a “backup” operation. The storage devices are typically disk drives organized as a disk array, wherein the term “disk” commonly describes a self-contained rotating magnetic media storage device. Information may also be stored on tape drives, conventional magnetic disks, optical disks such as CD-ROM or DVD based storage, flash memory storage device or any other type of non-volatile storage devices suitable for storing data.
Storage of information on the disk array is preferably implemented as one or more storage “volumes” of physical disks, defining an overall logical arrangement of disk space. The disks within a volume are typically organized as one or more groups, wherein each group may be operated as a Redundant Array of Independent (or Inexpensive) Disks (RAID).
A tape drive is a data storage device that reads and writes data stored on a magnetic tape and is often used for backing up data stored at other types of storage. A tape library is a storage device that may contain tape drives, slots to hold tape cartridges and an automated method for physically moving tapes within the device.
Unlike hard drives that allow random-access to data, tape drives only allow for sequential-access of data. A tape drive spends a considerable amount of time winding tape between reels to read a particular piece of data. As a result, tape drives have very slow average seek times.
Despite its limitations various backup systems and applications continue to backup data at tape libraries because they can store large amounts of data. One option, called a virtual tape library (VTL) has been used to take advantage of the existing tape infrastructure while data is replicated on disk drives or other media. VTL is a data storage virtualization technology typically used for archival and backup purposes. In generic terms, VTL presents a storage component (such as disk) as tapes available for use with tape drives. In other words, VTL presents a non-tape storage device that appears to be a tape library to a backup application, but actually stores data by other means. A VTL can be configured as a temporary storage location before data is actually sent to real tapes or it can be the final storage location itself. VTL technology is typically implemented in a VTL appliance that presents a plurality of virtual tape volumes (VTVs) (also referred to as a virtual storage volumes (VSVs)) to backup applications and other user systems. The VSVs use a plurality of storage units within a logical space for storing information at the physical storage space of a storage device.
The term logical space means a virtual storage space that is divided by the plurality of storage units. The storage units are mapped to the physical storage space at the storage device. The VSVs store data to the storage units of the logical space and are typically unaware of the physical storage space layout at the storage device.
Logic for the VTL appliance typically manages the plurality of storage units within the logical space. To manage the storage units, logic for the VTL occasionally determines which storage units in the logical space are not being used at any given time such that they can be allocated to VSVs. If each VSV were to exclusively use a dedicated storage unit, it would be simpler to manage the logical space. However, multiple VSVs may reference the same storage unit for storing information, which makes the process of determining unused storage unit complex. The process is further complicated because VSVs may seek to use a storage unit while the storage unit may be in the process of being released to a pool of available storage units. Continuous efforts are being made to improve the overall process of managing the storage units in general and to improve the process by which storage units are allocated, in particular.